home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / tools / czesc_3 / phoonsrc / libi / mathsup.c < prev    next >
C/C++ Source or Header  |  1994-02-22  |  2KB  |  109 lines

  1. extern struct MathIeeeDoubTransBase * MathIeeeDoubTransBase;
  2. extern struct MathIeeeDoubBasBase * MathIeeeDoubBasBase;
  3.  
  4. double const atan (double parm)
  5. {
  6.     register double res __asm("d0");
  7.     register void *a6 __asm ("a6");
  8.     register double d0 __asm("d0");
  9.  
  10.     a6 = MathIeeeDoubTransBase;
  11.     d0 = parm;
  12.     __asm volatile ("
  13.     jsr a6@(-0x1e)"
  14.     : "=r" (res)
  15.     : "r" (a6), "r" (d0)
  16.     : "d0", "d1", "a0", "a1");
  17.     return res;
  18. }
  19. double const sin (double parm)
  20. {
  21.     register double res __asm("d0");
  22.     register void *a6 __asm ("a6");
  23.     register double d0 __asm("d0");
  24.  
  25.     a6 = MathIeeeDoubTransBase;
  26.     d0 = parm;
  27.     __asm volatile ("
  28.     jsr a6@(-0x24)"
  29.     : "=r" (res)
  30.     : "r" (a6), "r" (d0)
  31.     : "d0", "d1", "a0", "a1");
  32.     return res;
  33. }
  34. double const cos (double parm)
  35. {
  36.     register double res __asm("d0");
  37.     register void *a6 __asm ("a6");
  38.     register double d0 __asm("d0");
  39.  
  40.     a6 = MathIeeeDoubTransBase;
  41.     d0 = parm;
  42.     __asm volatile ("
  43.     jsr a6@(-0x2a)"
  44.     : "=r" (res)
  45.     : "r" (a6), "r" (d0)
  46.     : "d0", "d1", "a0", "a1");
  47.     return res;
  48. }
  49. double const tan (double parm)
  50. {
  51.     register double res __asm("d0");
  52.     register void *a6 __asm ("a6");
  53.     register double d0 __asm("d0");
  54.  
  55.     a6 = MathIeeeDoubTransBase;
  56.     d0 = parm;
  57.     __asm volatile ("
  58.     jsr a6@(-0x30)"
  59.     : "=r" (res)
  60.     : "r" (a6), "r" (d0)
  61.     : "d0", "d1", "a0", "a1");
  62.     return res;
  63. }
  64. double const sqrt (double parm)
  65. {
  66.     register double res __asm("d0");
  67.     register void *a6 __asm ("a6");
  68.     register double d0 __asm("d0");
  69.  
  70.     a6 = MathIeeeDoubTransBase;
  71.     d0 = parm;
  72.     __asm volatile ("
  73.     jsr a6@(-0x60)"
  74.     : "=r" (res)
  75.     : "r" (a6), "r" (d0)
  76.     : "d0", "d1", "a0", "a1");
  77.     return res;
  78. }
  79. double const asin (double parm)
  80. {
  81.     register double res __asm("d0");
  82.     register void *a6 __asm ("a6");
  83.     register double d0 __asm("d0");
  84.  
  85.     a6 = MathIeeeDoubTransBase;
  86.     d0 = parm;
  87.     __asm volatile ("
  88.     jsr a6@(-0x72)"
  89.     : "=r" (res)
  90.     : "r" (a6), "r" (d0)
  91.     : "d0", "d1", "a0", "a1");
  92.     return res;
  93. }
  94. double const floor (double parm)
  95. {
  96.     register double res __asm("d0");
  97.     register void *a6 __asm ("a6");
  98.     register double d0 __asm("d0");
  99.  
  100.     a6 = MathIeeeDoubBasBase;
  101.     d0 = parm;
  102.     __asm volatile ("
  103.     jsr a6@(-0x5a)"
  104.     : "=r" (res)
  105.     : "r" (a6), "r" (d0)
  106.     : "d0", "d1", "a0", "a1");
  107.     return res;
  108. }
  109.